// 假设 axios 实例已经在 './http/index' 文件中创建并导出  
import axios from './index';

interface QueryParams {
  // 定义你的查询参数类型和名称  
  title?: string; // 如果title是可选的，并且可能是一个字符串  
  category?: string; // 假设category也是一个可选的字符串  
  description?: string; // 同上  
  status?: string | number; // 状态可能是字符串或数字，取决于你的API设计  
  createTime?: Date | string; // 假设创建时间可以是一个Date对象或字符串格式  
  pageSize: number; // 页大小是必需的，并且是一个数字  
  pageIndex: number; // 页索引也是必需的，并且是一个数字  
  // ... 其他参数  
}

export const getLibraries = async (libraryData: QueryParams) => {
  try {
    // 使用params字段来传递GET请求的参数  
    // 过滤掉null或undefined的值，因为axios不会将它们作为参数传递  
    const params = Object.entries(libraryData)
      .filter(([_, value]) => value !== null && value !== undefined)
      .reduce((result, [key, value]) => ({ ...result, [key]: value }), {});

    const res = await axios.get('/api/libraries/getLibraries', { params });
    return res.data;
  } catch (error) {
    // 在这里处理错误，例如抛出一个错误或返回错误消息  
    // @ts-nocheck  
    if (typeof error === 'object' && error !== null && 'message' in error) {
      throw new Error('获取列表失败: ' + error.message || error.toString());
    }
  }
};

export const getLibrariesCategoryList = async (libraryData: QueryParams) => {
  try {
    // 使用 params 字段来传递 GET 请求的参数  
    const res = await axios.get('/api/libraries/getLibrariesCategoryList', { params: libraryData });
    return res.data;
  } catch (error) {
    // 在这里处理错误，例如抛出一个错误或返回错误消息  
    // @ts-nocheck  
    if (typeof error === 'object' && error !== null && 'message' in error) {
      throw new Error('获取列表失败: ' + error.message || error.toString());
    }
  }
};

export const getLibrariesById = async (libraryData: QueryParams) => {
  try {
    // 使用 params 字段来传递 GET 请求的参数  
    const res = await axios.get('/api/libraries/getLibrariesById', { params: libraryData });
    return res.data;
  } catch (error) {
    // 在这里处理错误，例如抛出一个错误或返回错误消息  
    // @ts-nocheck  
    if (typeof error === 'object' && error !== null && 'message' in error) {
      throw new Error('获取列表失败: ' + error.message || error.toString());
    }
  }
};

export const addLibraries = async (libraryData: QueryParams) => {
  try {
    const res = await axios.post('/api/libraries/addLibraries', libraryData);
    return res.data;
  } catch (error) {
    // 在这里处理错误，例如抛出一个错误或返回错误消息  
    // @ts-nocheck  
    if (typeof error === 'object' && error !== null && 'message' in error) {
      throw new Error('添加列表失败: ' + error.message || error.toString());
    }
  }
};

export const updateLibraries = async (libraryData: QueryParams) => {
  try {
    const res = await axios.post('/api/libraries/updateLibraries', libraryData);
    return res;
  } catch (error) {
    // 在这里处理错误，例如抛出一个错误或返回错误消息  
    // @ts-nocheck  
    if (typeof error === 'object' && error !== null && 'message' in error) {
      throw new Error('编辑列表失败: ' + error.message || error.toString());
    }
  }
};